package com.xinqi.modules.course.course.dto.rsp;

import com.xinqi.modules.course.clazz.dto.rsp.ClassResultDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 课程表-响应对象
 *
 * @author: system
 * @date: 2023/01/17
 */
@Data
@Schema(description = "课程表-响应")
public class CourseResultDTO implements Serializable {
    /**
     * 课程id
     */
    private Long id;
    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 课程创建者名称
     */
    private String createName;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 学校ID
     */
    private Long schoolId;
    /**
     * 拥有者ID
     */
    private Long userId;
    /**
     * 课程名称
     */
    private String courseName;
    /**
     * 课程介绍
     */
    private String introduce;
    /**
     * 课程封面 背景色
     */
    private String courseColorBg;
    /**
     * 课程封面
     */
    private String courseColorCover;
    /**
     * 课程背景APP端
     */
    private String courseImageCoverApp;
    /**
     * 课程背景PC端
     */
    private String courseImageCoverPc;
    /**
     * NORMAL("NORMAL", "正常"),ARCHIVE("ARCHIVE", "归档"),DISSOLVE("DISSOLVE", "已解散");
     */
    private String status;
    /**
     * 是否置顶,0-不置顶，1-置顶
     */
    private Integer isTop;
    /**
     * 是否退出，0否，1-是
     */
    private Integer isDel;
    /**
     * "NORMAL", "正常","ARCHIVE_SELF", "归档自己","ARCHIVE_ALL, "归档全班";
     */
    private String archive;
    /**
     * 文件地址
     */
    private String fileUrl;
    /**
     * 链接地址
     */
    private String link;

    /**
     * 名称是否可编辑,0-不可编辑，1-可编辑，默认为1
     */
    private Integer isNameEditable;

    /**
     * 课程名称已修改次数
     */
    private Integer nameEditCount;
    /**
     * 扩展字段
     */
    private String extend;

    /**
     * 云课本id
     */
    private Long cloudTextbookId;

    /**
     * 云课本名称
     */
    private String cloudTextbookName;

    /**
     * 云课本封面图
     */
    private String cloudTextbookCoverImage;

    /**
     * TEACHER-老师;ASSISTANT-助教;REPRESENTATIVE-课代表;STUDENT-学生
     */
    private String classRole;

    /**
     * 是否为老师，1-是，0-否
     */
    private Integer isTeacher;

    /**
     * 课程未读信息数量
     */
    private Long MessageNotReadCount;

    /**
     * 班级列表
     */
    private List<ClassResultDTO> classList;

    /**
     * 是否具有恢复权限,学生不能恢复归档我的加入里面归档全班的课程，助教不能恢复归档我的创建归档全班的课程,1代表有，0代表没有
     */
    private Integer isHaveRecoverAllPermission;

}
